package com.tuyan.aixiang.activity.player;

/**
 * 预览界面
 * fxxxxxxxxxxxxxk ys
 */
public class PlayerActivity /** extends Activity implements WindowSizeChangeNotifier.OnWindowSizeChangedListener, EZUIPlayer.EZUIPlayerCallBack, VidControl.ControlAction **/{

//    protected final static String API_URL = "";
//
//    private static final String TAG = "PlayActivity";
//
//    private EZUIPlayer mEZUIPlayer;
//    /**
//     * onresume时是否恢复播放
//     */
//    private boolean isResumePlay = false;
//
//    private MyOrientationDetector mOrientationDetector;
//
//    /**
//     * 播放url：ezopen协议
//     */
//    private String playUrl;
//
//    private YsDevice ysDevice;
//
//    private VidControl vidControl;
//
//    private RelativeLayout rlTitle;
//
//    private DeviceControl dcControl;
//
//    private VoiceBtn vbVoiceBtn;
//
//    private boolean needValidate = true;
//
//    /**
//     * 开启预览播放
//     *
//     * @param context
//     */
//    public static void startPlayActivity(Context context, YsDevice device) {
//        Intent intent = new Intent(context, PlayerActivity.class);
//
//        intent.putExtra("device", device);
//        context.startActivity(intent);
//    }
//
//
//    @Override
//    protected void onCreate(Bundle savedInstanceState) {
////        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
//                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
//        super.onCreate(savedInstanceState);
//        LogUtil.d(TAG, "onCreate");
//        setContentView(R.layout.activity_play);
//        Intent intent = getIntent();
//        ysDevice = (YsDevice) intent.getSerializableExtra("device");
//
//        needValidate = ysDevice.getEncrypted().equals(1);
//        playUrl = YSUtil.getEzopenUrl(ysDevice, false, needValidate);
//
//
//        if (TextUtils.isEmpty(Constant.YS_APP_KEY)
//                || TextUtils.isEmpty(AppData.getYsToken())
//                || TextUtils.isEmpty(playUrl)) {
//            Toast.makeText(this, "Constant.YS_APP_KEY,AppData.getYsToken() or playUrl is null", Toast.LENGTH_LONG).show();
//            finish();
//            return;
//        }
//
//        TextView tvTitle = findViewById(R.id.tv_title);
//        tvTitle.setText(ysDevice.getDeviceName());
//        rlTitle = findViewById(R.id.rl_title);
//        dcControl = findViewById(R.id.dc_control);
//        vbVoiceBtn = findViewById(R.id.vb_voice);
//
//        findViewById(R.id.iv_back).setOnClickListener(v -> finish());
//        findViewById(R.id.iv_setting).setOnClickListener(v -> {
//            Intent inte = new Intent(this, WebActivity.class);
//            String link = Constant.CAMERA_SETTING + "?id=" + ysDevice.getId();
//            inte.putExtra("url", link);
//            startActivity(inte);
//        });
//
//        vidControl = findViewById(R.id.vc_control);
//        // 设置控制回调
//        vidControl.setup(this);
//        vidControl.setTitle(ysDevice.getDeviceName());
//
//        mOrientationDetector = new MyOrientationDetector(this);
//        new WindowSizeChangeNotifier(this, this);
//
//        //获取EZUIPlayer实例
//        mEZUIPlayer = (EZUIPlayer) findViewById(R.id.player_ui);
//        //设置加载需要显示的view
//        mEZUIPlayer.setLoadingView(initProgressBar());
//        mEZUIPlayer.setRatio(16 * 1.0f / 9);
//
//        preparePlay();
//        setSurfaceSize();
//
//        //
//        initControl();
//    }
//
//    /**
//     * 绑定控制按钮事件
//     */
//    private void initControl() {
//        dcControl.setOnMicClick(view -> {
//            vbVoiceBtn.setVisibility(View.VISIBLE);
//        });
//
//        vbVoiceBtn.setListener(this::startVoice, this::stopVoice);
//
//    }
//
//    /**
//     * 创建加载view
//     *
//     * @return
//     */
//    private View initProgressBar() {
//        RelativeLayout relativeLayout = new RelativeLayout(this);
//        relativeLayout.setBackgroundColor(Color.parseColor("#000000"));
//        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
//                RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
//        relativeLayout.setLayoutParams(lp);
//        RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
//        rlp.addRule(RelativeLayout.CENTER_IN_PARENT);//addRule参数对应RelativeLayout XML布局的属性
//        ProgressBar mProgressBar = new ProgressBar(this);
//        mProgressBar.setIndeterminateDrawable(getResources().getDrawable(R.drawable.progress));
//        relativeLayout.addView(mProgressBar, rlp);
//        return relativeLayout;
//    }
//
//    /**
//     * 准备播放资源参数
//     */
//    private void preparePlay() {
//        //设置debug模式，输出log信息
//        EZUIKit.setDebug(true);
//        //appkey初始化
//        EZUIKit.initWithAppKey(this.getApplication(), Constant.YS_APP_KEY);
//
//        if (!TextUtils.isEmpty(API_URL)) {
//            EzvizAPI.getInstance().setServerUrl(API_URL, null);
//        }
//
//        //设置授权accesstoken
//        EZUIKit.setAccessToken(AppData.getYsToken());
//        //设置播放资源参数
//        mEZUIPlayer.setCallBack(this);
//        mEZUIPlayer.setUrl(playUrl);
//    }
//
//    @Override
//    protected void onResume() {
//        super.onResume();
//        mOrientationDetector.enable();
//        Log.d(TAG, "onResume");
//        //界面stop时，如果在播放，那isResumePlay标志位置为true，resume时恢复播放
//        if (isResumePlay) {
//            isResumePlay = false;
//            mEZUIPlayer.startPlay();
//        }
//
//        if(StorageUtil.getBoolean(StorageKey.CLOSE_BACK, false)) {
//            StorageUtil.setBoolean(StorageKey.CLOSE_BACK, false);
//            finish();
//        }
//    }
//
//    @Override
//    protected void onPause() {
//        super.onPause();
//        mOrientationDetector.disable();
//    }
//
//    @Override
//    protected void onStop() {
//        super.onStop();
//        Log.d(TAG, "onStop + " + mEZUIPlayer.getStatus());
//        //界面stop时，如果在播放，那isResumePlay标志位置为true，以便resume时恢复播放
//        if (mEZUIPlayer.getStatus() != EZUIPlayer.STATUS_STOP) {
//            isResumePlay = true;
//        }
//        //停止播放
//        mEZUIPlayer.stopPlay();
//    }
//
//    @Override
//    protected void onDestroy() {
//        super.onDestroy();
//        Log.d(TAG, "onDestroy");
//
//        //释放资源
//        mEZUIPlayer.releasePlayer();
//    }
//
//    @Override
//    public void onPlaySuccess() {
//        Log.d(TAG, "onPlaySuccess");
//        // TODO: 2017/2/7 播放成功处理
//        vidControl.syncPlay(true);
//    }
//
//    @Override
//    public void onPlayFail(EZUIError error) {
//        Log.d(TAG, "onPlayFail");
//        vidControl.syncPlay(false);
//
//        // TODO: 2017/2/21 播放失败处理
//        if (error.getErrorString().equals(EZUIError.UE_ERROR_INNER_VERIFYCODE_ERROR)) {
////            needValidate = true;
//            ToastUtil.makeShort("密码验证失败");
////            mEZUIPlayer.setUrl(YSUtil.getEzopenUrl(ysDevice, false, needValidate));
////            onRefresh();
//        } else if (error.getErrorString().equalsIgnoreCase(EZUIError.UE_ERROR_NOT_FOUND_RECORD_FILES)) {
//            // TODO: 2017/5/12
//            //未发现录像文件
//            Toast.makeText(this, "未发现录像文件", Toast.LENGTH_LONG).show();
//        }
//    }
//
//    private int width;
//    private int height;
//
//    @Override
//    public void onVideoSizeChange(int width, int height) {
//        // TODO: 2017/2/16 播放视频分辨率回调
//        Log.d(TAG, "onVideoSizeChange  width = " + width + "   height = " + height);
//    }
//
//    @Override
//    public void onPrepared() {
//        Log.d(TAG, "onPrepared");
//        //播放
//        mEZUIPlayer.startPlay();
//    }
//
//    @Override
//    public void onPlayTime(Calendar calendar) {
//        //Log.d(TAG,"onPlayTime");
//        if (calendar != null) {
//            // TODO: 2017/2/16 当前播放时间
//            //Log.d(TAG,"onPlayTime calendar = "+calendar.getTime().toString());
//        }
//    }
//
//    @Override
//    public void onPlayFinish() {
//        // TODO: 2017/2/16 播放结束
//        Log.d(TAG, "onPlayFinish");
//    }
//
//
//    /**
//     * 屏幕旋转时调用此方法
//     */
//    @Override
//    public void onConfigurationChanged(Configuration newConfig) {
//        super.onConfigurationChanged(newConfig);
//        Log.d(TAG, "onConfigurationChanged");
//        setSurfaceSize();
//    }
//
//    private void setSurfaceSize() {
//        DisplayMetrics dm = new DisplayMetrics();
//        getWindowManager().getDefaultDisplay().getMetrics(dm);
//        boolean isWideScrren = mOrientationDetector.isWideScrren();
//        Log.d(TAG, "isWideScrren  = " + isWideScrren + "    dm.widthPixels = " + dm.widthPixels + "   dm.heightPixels =  " + dm.heightPixels);
//        //竖屏
//        if (!isWideScrren) {
//            //竖屏调整播放区域大小，宽全屏，高根据视频分辨率自适应
//            if (width == 0) {
//                mEZUIPlayer.setSurfaceSize(dm.widthPixels, 0);
//            } else {
//                mEZUIPlayer.setSurfaceSize(dm.widthPixels, height * dm.widthPixels / width);
//            }
//        } else {
//            //横屏屏调整播放区域大小，宽、高均全屏，播放区域根据视频分辨率自适应
//            mEZUIPlayer.setSurfaceSize(dm.widthPixels, dm.heightPixels);
//        }
//    }
//
//    @Override
//    public void onWindowSizeChanged(int w, int h, int oldW, int oldH) {
//        if (mEZUIPlayer != null) {
//            setSurfaceSize();
//        }
//    }
//
//    // =============控制===============
//
//    @Override
//    public void onTogglePlay(boolean play) {
//
//        if(play) {
//            if (mEZUIPlayer.getStatus() == EZUIPlayer.STATUS_STOP) {
//                mEZUIPlayer.startPlay();
//            }
//        } else {
//            if (mEZUIPlayer.getStatus() == EZUIPlayer.STATUS_PLAY) {
//                mEZUIPlayer.stopPlay();
//            }
//        }
//    }
//
//    @Override
//    public void onToggleVoice(boolean mute) {
//    }
//
//    // =============对讲====================
//
//    private void initVoice() {
//    }
//
//    private void startVoice() {
//        Log.d(TAG, "start voice");
//    }
//
//    private void stopVoice() {
//        Log.d(TAG, "stop voice");
//    }
//
//    private void destroyVoice() {
//
//    }
//
//    // ============对讲END ==============
//
//    @Override
//    public void onToggleFullscreen(boolean full) {
//        if(full) {
//            rlTitle.setVisibility(View.GONE);
//            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//            getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //隐藏状态栏
//            ImmersionBar.with(this).fitsSystemWindows(false).statusBarColor("#00000000").fullScreen(true).init();
//        } else {
//            rlTitle.setVisibility(View.VISIBLE);
//            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
//            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); //显示状态栏
//            ImmersionBar.with(this).keyboardEnable(true)  //解决软键盘与底部输入框冲突问题
////                .flymeOSStatusBarFontColor(R.color.textDark)
//                    .statusBarDarkFont(true, 0.2f)
//                    .fitsSystemWindows(true)
//                    .statusBarColor("#ffffff")
//                    .init();        }
//    }
//
//    @Override
//    public void onRefresh() {
//        mEZUIPlayer.stopPlay();
//        mEZUIPlayer.startPlay();
//    }
//
//    @Override
//    public void onToggleResolution(boolean hd) {
//        mEZUIPlayer.stopPlay();
//        mEZUIPlayer.setUrl(YSUtil.getEzopenUrl(ysDevice, hd, needValidate));
//        mEZUIPlayer.startPlay();
//    }
//
//    public class MyOrientationDetector extends OrientationEventListener {
//
//        private WindowManager mWindowManager;
//        private int mLastOrientation = 0;
//
//        public MyOrientationDetector(Context context) {
//            super(context);
//            mWindowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
//        }
//
//        public boolean isWideScrren() {
//            Display display = mWindowManager.getDefaultDisplay();
//            Point pt = new Point();
//            display.getSize(pt);
//            return pt.x > pt.y;
//        }
//
//        @Override
//        public void onOrientationChanged(int orientation) {
//            int value = getCurentOrientationEx(orientation);
//            if (value != mLastOrientation) {
//                mLastOrientation = value;
//                int current = getRequestedOrientation();
//                if (current == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
//                        || current == ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE) {
////                    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);
//                }
//            }
//        }
//
//        private int getCurentOrientationEx(int orientation) {
//            int value = 0;
//            if (orientation >= 315 || orientation < 45) {
//                // 0度
//                value = 0;
//                return value;
//            }
//            if (orientation >= 45 && orientation < 135) {
//                // 90度
//                value = 90;
//                return value;
//            }
//            if (orientation >= 135 && orientation < 225) {
//                // 180度
//                value = 180;
//                return value;
//            }
//            if (orientation >= 225 && orientation < 315) {
//                // 270度
//                value = 270;
//                return value;
//            }
//            return value;
//        }
//    }
}